package com.ohs.ohsoa.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ohs.ohsoa.system.entity.GroupEnterprise;
import com.ohs.ohsoa.system.entity.Subgroup;
import com.ohs.ohsoa.system.entity.SubgroupAndUserRelation;
import com.ohs.ohsoa.system.entity.UserInfo;
import com.ohs.ohsoa.system.vo.SubgroupRequestBean;
import com.ohs.ohsoa.system.vo.SubgroupUserInfoVo;
import com.ohs.ohsoa.system.vo.SubgroupVo;
import com.ohs.ohsoa.system.vo.TreeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Subgroup小组设置
 *
 * @author mwx
 * @since  2021年9月22日
 */
@Mapper
public interface SubgroupMapper extends BaseMapper<Subgroup> {

    // 分页查询
    List<SubgroupVo> listSubgroup(Subgroup subgroup);

    // 员工信息查询
    List<SubgroupUserInfoVo> listUserInfo(UserInfo userInfo);

    // 集团查询
    List<TreeVo> listGroupEnterprise();

    // 部门查询
    List<TreeVo> listDepartment(String pid);

    // 员工查询
    List<TreeVo> listUser(@Param("pid") String pid,@Param("userinfoGuid") String userinfoGuid);

    // 小组详情成员list
    List<SubgroupAndUserRelation> listSubgroupAndUserRelation(String subgroupGuid);

    // 新增
    Integer insertSubgroup(SubgroupRequestBean subgroup);

    Integer insertSubgroupAndUserRelation(SubgroupAndUserRelation subgroup);

    // 修改
    Integer updateSubgroup(SubgroupRequestBean subgroup);

    // 根据小组id删除成员
    Integer deleteSubgroupAndUserRelationById(String subgroupGuid);

    // 删除
    Integer deleteSubgroupById(List<String> ids);

    Integer deleteSubgroupAndUserRelationByIds(List<String> ids);

    // 查看详情
    Subgroup getSubgroupById(String id);


    /**获取企业信息
     *
     * @param groupEnterpriseGuid 企业信息
     * @return 企业信息
     */
    GroupEnterprise getGroupEnterprise(@Param("groupEnterpriseGuid") String groupEnterpriseGuid);
}
